import pybuda._C.graph
from typing import ClassVar, List

ModuleInputsBFS: SchedulerPolicy
Topological: SchedulerPolicy

class SchedulerConfig:
    policy: SchedulerPolicy
    scheduler_constraints: List[List[str]]
    def __init__(self, scheduler_policy: SchedulerPolicy, scheduler_constraints: List[List[str]]) -> None: ...

class SchedulerPolicy:
    __members__: ClassVar[dict] = ...  # read-only
    ModuleInputsBFS: ClassVar[SchedulerPolicy] = ...
    Topological: ClassVar[SchedulerPolicy] = ...
    __entries: ClassVar[dict] = ...
    def __init__(self, value: int) -> None: ...
    def __eq__(self, other: object) -> bool: ...
    def __hash__(self) -> int: ...
    def __index__(self) -> int: ...
    def __int__(self) -> int: ...
    def __ne__(self, other: object) -> bool: ...
    @property
    def name(self) -> str: ...
    @property
    def value(self) -> int: ...

def policy_from_string(schedule_policy_str: str) -> SchedulerPolicy: ...
def run_scheduler(scheduler_config: SchedulerConfig, graph: pybuda._C.graph.Graph) -> List[str]: ...
